home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The 640 MEG Shareware Studio 2
/
The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO
/
rbbs
/
lrge174.zip
/
MAKEFIDX.MRG
< prev
next >
Wrap
Text File
|
1992-10-20
|
12KB
|
311 lines
* ------------[ BLED merge (c) Ken Goosens ]-------------
* Merge this against MAKEFIDX.BAS to produce MAKEFIDX.NEW
* MAKEFIDX.BAS: Date 11-20-1990 Size 13219 bytes
* ------------[ Created 10-20-1992 20:02:40 ]------------
* REPLACING old line(s) by new
DECLARE SUB TRIM (TRIM.PARM$)
DECLARE SUB BRKFNAME (FILENAME$, DRVPATH$, PREFIX$, EXTENSION$, FOR.JOINING%)
DECLARE SUB TRIMTRAIL (TRIM.PARM$, TRIM.THIS$)
DECLARE SUB FINDLAST (LOOK.IN$, LOOK.FOR$, WHERE.FOUND%, NUM.FINDS%)
DEFINT A-Z
DIM FileSpec$(999)
DIM FileDir$(255)
DIM LocationIndex$(999)
TRUE = -1
FALSE = 0
WriteMode$ = "REPLACE"
NameFile$ = "FIDX.DEF"
LocationFile$ = "LIDX.DEF"
DirString$ = "DIRECTORY OF" ' 0216
SHARING = FALSE
* ------[ first line different ]------
NumLocations& = 0 ' LRGE174/YB102001
NumFileSpecs& = 0 ' LRGE174/YB102001
NumFileDirs = 0
StartCol = 1 ' 0224
ConfigFile$ = "MAKEFIDX.CFG"
PassedArguments$ = COMMAND$
PassedArguments$ = UCASE$(PassedArguments$)
X = INSTR(PassedArguments$,"/B")
RunBatch = (X > 0)
IF RunBatch THEN
PassedArguments$ = LEFT$(PassedArguments$, X-1) + RIGHT$(PassedArguments$,Len(PassedArguments$)-X-1)
END IF
IF PassedArguments$ <> "" THEN
ConfigFile$ = PassedArguments$
END IF
ON ERROR GOTO 40000
IF SHARING THEN
OPEN ConfigFile$ FOR INPUT SHARED AS #1
ELSE
OPEN ConfigFile$ FOR INPUT AS #1
END IF
ON ERROR GOTO 0
WHILE NOT EOF(1)
LINE INPUT #1, A$
X$ = LEFT$(A$, 1)
IF X$ <> "" AND X$ <> "*" THEN
A$ = UCASE$(A$)
IF LEFT$(A$,11) = "/WRITEMODE=" THEN
WriteMode$ = MID$(A$,12)
CALL TRIM (WriteMode$)
END IF
IF LEFT$(A$, 10) = "/NAMEFILE=" THEN
NameFile$ = MID$(A$, 11)
CALL TRIM(NameFile$)
END IF
IF LEFT$(A$, 14) = "/LOCATIONFILE=" THEN
LocationFile$ = MID$(A$, 15)
CALL TRIM(LocationFile$)
END IF
IF LEFT$(A$, 10) = "/FILESPEC=" THEN
X$ = MID$(A$, 11)
CALL TRIM(X$)
NumFileSpecs& = NumFileSpecs& + 1 ' LRGE174/YB102001
FileSpec$(NumFileSpecs&) = X$ ' LRGE174/YB102001
END IF
IF LEFT$(A$, 9) = "/FILEDIR=" THEN
X$ = MID$(A$, 10)
CALL TRIM(X$)
NumFileDirs = NumFileDirs + 1
FileDir$(NumFileDirs) = X$
END IF
IF LEFT$(A$,11) = "/DIRSTRING=" THEN ' 0216
X$ = MID$(A$,12) ' 0216
CALL TRIM (X$) ' 0216
DirString$ = X$ ' 0216
DirString$ = UCASE$(DirString$) ' 0220
END IF ' 0216
END IF
WEND
CLOSE 1
Replacing = (LEFT$(WriteMode$, 1) = "R")
PRINT "MAKEFIDX version 1.2 Nov 20, 1990 copyright (c) 1990 by Ken Goosens"
PRINT "an RBBS utility to make files for fast directory searches"
PRINT
PRINT "Modified by Yaser Behbehani on October 20, 1992" ' LRGE174/YB102001
PRINT "for large FIDX/LIDX files" ' LRGE174/YB102001
PRINT ' LRGE174/YB102001
PRINT "On this run"
IF Replacing THEN
PRINT "Overwriting data files"
ELSE
PRINT "Adding to data files"
END IF
PRINT "Configuration file used ....... ";ConfigFile$
PRINT "Name of list of files ......... "; NameFile$
PRINT "Name of list of locations ..... "; LocationFile$
PRINT "# of DOS directories to process"; NumFileSpecs&
PRINT "# of file lists to process ...."; NumFileDirs
PRINT
IF NOT RunBatch THEN
INPUT "A to abort, anything else runs"; ANS$
ANS$ = UCASE$(ANS$)
IF ANS$ = "A" THEN END
END IF
'NumFileSpecs& = 2
'FileSpec$(1) = "C:\TEMP\"
'FileSpec$(2) = "C:\UTILS\"
IF Replacing THEN
ON ERROR GOTO 40100
KILL NameFile$
KILL LocationFile$
ON ERROR GOTO 0
ELSE
IF SHARING THEN
OPEN LocationFile$ FOR INPUT SHARED AS #1
ELSE
OPEN LocationFile$ FOR INPUT AS #1
END IF
PRINT "Loading existing locations..."
WHILE NOT EOF(1)
LINE INPUT #1, A$
CALL TRIM(A$)
NumLocations& = NumLocations& + 1 ' LRGE174/YB102001
LocationIndex$(NumLocations&) = A$ ' LRGE174/YB102001
WEND
CLOSE 1
PRINT STR$(NumLocations&); " locations loaded" ' LRGE174/YB102001
END IF
IF SHARING THEN
OPEN NameFile$ FOR RANDOM SHARED AS #2 LEN = 18
OPEN LocationFile$ FOR RANDOM SHARED AS #3 LEN = 66
ELSE
OPEN NameFile$ FOR RANDOM AS #2 LEN = 18
OPEN LocationFile$ FOR RANDOM AS #3 LEN = 66
END IF
FIELD 2, 18 AS NameRec$
FIELD 3, 66 AS LocationRec$
MID$(NameRec$, 17, 2) = CHR$(13) + CHR$(10)
MID$(LocationRec$, 64, 3) = "." + CHR$(13) + CHR$(10)
NumRecsNameFile& = LOF(2) / 18 ' LRGE174/YB102001
NumRecsLocationFile& = LOF(3) / 66 ' LRGE174/YB102001
InFile$ = "IDX.$$$"
FOR ix = 1 TO NumFileSpecs& ' LRGE174/YB102001
PRINT "Processing filespec "; FileSpec$(ix) ; ' 112090
' SHELL "DIR " + FileSpec$(ix) + " > IDX.$$$"
' GOSUB ProcessFile
GOSUB ProcessDir ' 112090
NEXT
FOR ix = 1 TO NumFileDirs
InFile$ = FileDir$(ix)
PRINT "Processing file list "; FileDir$(ix) ; ' 112090
GOSUB ProcessFile
NEXT
END
ProcessDir: ' 112090
CALL BRKFNAME (FileSpec$(ix),CurrentDrivePath$,Prefix$,Extension$,TRUE)
CALL FindFirstF(FileSpec$(ix)+CHR$(0),0,RtnCode)
IF RtnCode <> 0 THEN
PRINT
PRINT " No files found"
RETURN
END IF
GOSUB SetLocIndex
RecCt = 0
PrtCol = POS(0) + 1 ' 112090
WHILE RtnCode = 0
RecCt = RecCt + 1 ' 112090
LOCATE ,PrtCol ' 112090
PRINT RecCt ; ' 112090
FileName$ = SPACE$(12)
CALL GetNameF (FileName$,FLen)
FileName$ = LEFT$(FileName$,FLen)
GOSUB AddFileName
CALL FindNextF (RtnCode)
WEND
PRINT
RETURN
ProcessFile:
ON ERROR GOTO 40200 ' 111990
IF SHARING THEN
OPEN InFile$ FOR INPUT SHARED AS #1
ELSE
OPEN InFile$ FOR INPUT AS #1
END IF
ON ERROR GOTO 0 ' 111990
RecCt = 0 ' 112090
PrtCol = POS(0) + 1 ' 112090
WHILE NOT EOF(1)
LINE INPUT #1, A$
RecCt = RecCt + 1 ' 112090
LOCATE ,PrtCol ' 112090
PRINT RecCt ; ' 112090
X$ = UCASE$(A$)
X = INSTR(X$, DirString$) ' 0216
IF X > 0 THEN ' 0224
IF LEFT$(X$,X-1) = SPACE$(X-1) THEN ' 0224
DrivePath$ = MID$(A$, X + LEN(DirString$)) ' 0216
CALL TRIM(DrivePath$)
IF LEFT$(DrivePath$,3) <> "M! " THEN ' 0217
IF INSTR(DrivePath$,"*") > 0 OR INSTR(DrivePath$,"?") > 0 THEN ' 0216
CALL BRKFNAME (DrivePath$,RtnDrivePath$,RtnPrefix$,RtnExt$,TRUE) ' 0216
DrivePath$ = RtnDrivePath$ ' 0216
END IF
IF INSTR(DrivePath$, "\") > 0 THEN
IF RIGHT$(DrivePath$, 1) <> "\" THEN
DrivePath$ = DrivePath$ + "\"
END IF
END IF
END IF ' 0217
CurrentDrivePath$ = DrivePath$
GOSUB SetLocIndex
GOTO DoneEntry
END IF ' 0224
END IF
IF INSTR(" .", LEFT$(A$, 1)) > 0 THEN
GOTO DoneEntry
END IF
IF LEN(A$) < StartCol THEN ' 0224
GOTO DoneEntry ' 0224
END IF ' 0224
IF StartCol > 1 THEN ' 0224
A$ = MID$(A$,StartCol) ' 0224
END IF ' 0224
X = INSTR(A$, " ")
IF X = 0 THEN ' 0217
X = LEN(A$) + 1 ' 0217
ELSE
IF X < 13 THEN
FileName$ = LEFT$(A$, 12)
IF INSTR(FileName$, ".") = 0 AND MID$(FileName$, 9, 1) = " " AND MID$(FileName$, 10, 1) <> " " THEN
MID$(FileName$, X) = "." + MID$(FileName$, 10) + SPACE$(9 - X)
ELSE
FileName$ = LEFT$(A$, X - 1)
END IF
GOSUB AddFileName
GOTO DoneEntry
END IF
END IF ' 0217
FileName$ = LEFT$(A$, X - 1)
CALL BRKFNAME (FileName$,RtnDrivePath$,RtnPrefix$,RtnExt$,TRUE) ' 0217
IF RtnDrivePath$ <> "" THEN ' 0217
DrivePath$ = RtnDrivePath$ ' 0217
FileName$ = RtnPrefix$ + RtnExt$ ' 0217
END IF ' 0217
GOSUB AddFileName
DoneEntry:
WEND
QuitEntry: ' 111990
ON ERROR GOTO 0 ' 111990
CLOSE 1
PRINT ' 111990
RETURN
SetPathName:
CALL BRKFNAME(FileName$, FileDrivePath$, FilePrefix$, FileExt$, TRUE)
IF FileDrivePath$ <> "" THEN
CurrentDrivePath$ = FileDrivePath$
GOSUB SetLocIndex
FileName$ = FilePrefix$ + FileExt$
ELSE
CurrentDrivePath$ = DrivePath$
END IF
RETURN
AddFileName:
GOSUB SetPathName
MID$(NameRec$, 1, 16) = SPACE$(16)
MID$(NameRec$, 1, 12) = FileName$
X$ = MID$(STR$(Location&), 2) ' LRGE174/YB102001
X$ = SPACE$(4 - LEN(X$)) + X$
MID$(NameRec$, 13, 4) = X$
NumRecsNameFile& = NumRecsNameFile& + 1 ' LRGE174/YB102001
PUT 2, NumRecsNameFile& ' LRGE174/YB102001
RETURN
SetLocIndex:
IF CurrentDrivePath$ = LocationIndex$(Location&) THEN RETURN ' LRGE174/YB102001
LocationIndex$(NumRecsLocationFile& + 1) = CurrentDrivePath$ ' LRGE174/YB102001
Location& = 1 ' LRGE174/YB102001
WHILE CurrentDrivePath$ <> LocationIndex$(Location&) ' LRGE174/YB102001
Location& = Location& + 1 ' LRGE174/YB102001
WEND
IF Location& > NumRecsLocationFile& THEN ' LRGE174/YB102001
NumRecsLocationFile& = Location& ' LRGE174/YB102001
MID$(LocationRec$, 1, 63) = SPACE$(63)
MID$(LocationRec$, 1, 63) = CurrentDrivePath$
PUT 3, NumRecsLocationFile& ' LRGE174/YB102001
END IF
RETURN